package com.sheng.leetcode.year2023.month08.day07;

import org.junit.Test;

/**
 * @author liusheng
 * @date 2023/08/07
 * <p>
 * 344. 反转字符串<p>
 * <p>
 * 编写一个函数，其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。<p>
 * 不要给另外的数组分配额外的空间，你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。<p>
 * <p>
 * 示例 1：<p>
 * 输入：s = ['h','e','l','l','o']<p>
 * 输出：['o','l','l','e','h']<p>
 * <p>
 * 示例 2：<p>
 * 输入：s = ['H','a','n','n','a','h']<p>
 * 输出：['h','a','n','n','a','H']<p>
 * <p>
 * 提示：<p>
 * 1 <= s.length <= 10^5<p>
 * s[i] 都是 ASCII 码表中的可打印字符<p>
 */
public class LeetCode0344 {

    @Test
    public void test01() {
//        char[] s = {'h', 'e', 'l', 'l', 'o'};
        char[] s = {'H', 'a', 'n', 'n', 'a', 'h'};
        new Solution344().reverseString(s);
        System.out.println(s);
    }
}

class Solution344 {
    public void reverseString(char[] s) {
        for (int i = 0; i < s.length / 2; i++) {
            char c = s[i];
            s[i] = s[s.length - i - 1];
            s[s.length - i - 1] = c;
        }
    }
}
